using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Gratamira.CapaNegocio;
using Infragistics.Win.UltraWinGrid;

namespace Gratamira.Presentacion
{
    public partial class frmConMovInventario : Form
    {

        #region Constructores
        public frmConMovInventario()
        {
            InitializeComponent();
            llenarDatosCombo();
            configurarGrid();
        }
        #endregion

        private void llenarDatosCombo()
        {
            //ddlFiltrarTipoEntrada.Items.Add("Saldos");
            ddlFiltrarTipoEntrada.Items.Add(claseMovimiento.Ambas.ToString());
            ddlFiltrarTipoEntrada.Items.Add(claseMovimiento.Entrada.ToString());
            ddlFiltrarTipoEntrada.Items.Add(claseMovimiento.Salida.ToString());
            ddlFiltrarTipoEntrada.SelectedIndex = 0;

            Bodega tBodega = new Bodega();

            ddlFiltrarBodega.Items.Add("Todas");
            ddlFiltrarBodega.DataSource = tBodega.leerBodega("%", campoFiltro.SinFiltro);
            ddlFiltrarBodega.DisplayMember = "Nombre";
            ddlFiltrarBodega.ValueMember = "BodegaID";
            ddlFiltrarBodega.SelectedIndex = 0;

            uneAnno.Value = DateTime.Now.Year.ToString();
            uneMes.Value = DateTime.Now.Month.ToString();

        }

        private void configurarGrid()
        {
            //if (ddlFiltrarTipoEntrada.SelectedItem.ToString() == "Saldos")
            //{
            //    grdValores.DisplayLayout.Bands[0].Columns.Add("Bodega");
            //    grdValores.DisplayLayout.Bands[0].Columns.Add("ProductoID");
            //    grdValores.DisplayLayout.Bands[0].Columns.Add("Producto");
            //    grdValores.DisplayLayout.Bands[0].Columns.Add("Saldo Actual");
            //    grdValores.DisplayLayout.Bands[0].Columns.Add("Reserva");
            //    grdValores.DisplayLayout.Bands[0].Columns.Add("Saldo Anterior");
            //    grdValores.DisplayLayout.Bands[0].Columns.Add("Unidad");

            //    grdValores.DisplayLayout.Bands[0].Columns["Bodega"].Width = 200;
            //    grdValores.DisplayLayout.Bands[0].Columns["ProductoID"].Width = 120;
            //    grdValores.DisplayLayout.Bands[0].Columns["Producto"].Width = 400;
            //    grdValores.DisplayLayout.Bands[0].Columns["Saldo Actual"].Width = 100;
            //    grdValores.DisplayLayout.Bands[0].Columns["Saldo Actual"].CellAppearance.TextHAlign = Infragistics.Win.HAlign.Right;
            //    grdValores.DisplayLayout.Bands[0].Columns["Saldo Actual"].MaskDisplayMode = Infragistics.Win.UltraWinMaskedEdit.MaskMode.IncludeLiterals;

            //    grdValores.DisplayLayout.Bands[0].Columns["Reserva"].Width = 100;
            //    grdValores.DisplayLayout.Bands[0].Columns["Reserva"].CellAppearance.TextHAlign = Infragistics.Win.HAlign.Right;
            //    grdValores.DisplayLayout.Bands[0].Columns["Reserva"].MaskDisplayMode = Infragistics.Win.UltraWinMaskedEdit.MaskMode.IncludeLiterals;

            //    grdValores.DisplayLayout.Bands[0].Columns["Saldo Anterior"].Width = 100;
            //    grdValores.DisplayLayout.Bands[0].Columns["Saldo Anterior"].CellAppearance.TextHAlign = Infragistics.Win.HAlign.Right;
            //    grdValores.DisplayLayout.Bands[0].Columns["Saldo Anterior"].MaskDisplayMode = Infragistics.Win.UltraWinMaskedEdit.MaskMode.IncludeLiterals;
            //    grdValores.DisplayLayout.Bands[0].Columns["Unidad"].Width = 100;
            //}
            //else
            grdValores.DisplayLayout.Bands[0].Columns.Add("Movimiento");
            grdValores.DisplayLayout.Bands[0].Columns.Add("Fecha");
            grdValores.DisplayLayout.Bands[0].Columns.Add("Tipo");
            grdValores.DisplayLayout.Bands[0].Columns.Add("Nombre");
            grdValores.DisplayLayout.Bands[0].Columns.Add("Observacion");

            grdValores.DisplayLayout.Bands[0].Columns["Movimiento"].Width = 50;
            grdValores.DisplayLayout.Bands[0].Columns["Fecha"].Width = 50;
            grdValores.DisplayLayout.Bands[0].Columns["Tipo"].Width = 50;
            grdValores.DisplayLayout.Bands[0].Columns["Nombre"].Width = 90;
            grdValores.DisplayLayout.Bands[0].Columns["Observacion"].Width = 200;

            grdValores.Refresh();
        }

        private void btnConsultar_Click(object sender, EventArgs e)
        {
            try
            {
                //string tPeriodoValidar = uneMes.Value.ToString();
                //string tPeriodoBodega = ((DataTable)(ddlFiltrarBodega.DataSource)).Rows[ddlFiltrarBodega.SelectedIndex].ItemArray[4].ToString();

                //tPeriodoValidar = (Convert.ToInt32(tPeriodoValidar) < 10) ? "0" + tPeriodoValidar : tPeriodoValidar;
                //tPeriodoValidar = uneAnno.Value.ToString() + tPeriodoValidar;

                //if (Convert.ToInt32(tPeriodoValidar) <= Convert.ToInt32(tPeriodoBodega))
                //{
                    MoviInve tMovimiento = new MoviInve();
                    grdValores.DataSource = tMovimiento.leerMovimiento(uneMes.Value.ToString(), uneAnno.Value.ToString(), ddlFiltrarBodega.SelectedValue.ToString(), ddlFiltrarTipoEntrada.SelectedItem.ToString());
                    // CONSULTA DE SALDOS, PASO A OTRA PANTALLA
                    //{
                    //    if (Convert.ToInt32(tPeriodoValidar) < Convert.ToInt32(tPeriodoBodega))
                    //    {
                    //        grdValores.DataSource = tMovimiento.leerSaldos(tPeriodoValidar, ddlFiltrarBodega.SelectedValue.ToString(), false);
                    //    }
                    //    else
                    //    {
                    //        grdValores.DataSource = tMovimiento.leerSaldos(tPeriodoBodega, ddlFiltrarBodega.SelectedValue.ToString(), true);
                    //    }
                    //}
                    lblMensaje.Text = "Cantidad de registros consultados: " + grdValores.Rows.Count.ToString();
                //}
                //else
                //{
                //    throw new Exception("El periodo a consultar debe ser menor o igual al periodo actual en que se encuentra la bodega: " + tPeriodoBodega);
                //}

            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message.ToString(), "INFORMACION", MessageBoxButtons.OK);
            }
        }

        private void grdValores_DoubleClick(object sender, EventArgs e)
        {
            if (grdValores.Rows.Count > 0)
            {
                if (grdValores.ActiveRow != null)
                {
                    try
                    {
                        int tNumero = Convert.ToInt32(grdValores.ActiveRow.Cells["Movimiento"].Value);
                        string tBodegaID = ddlFiltrarBodega.SelectedValue.ToString();
                        claseMovimiento tClaseMov;
                        if (grdValores.ActiveRow.Cells["Tipo"].Value.ToString() == "Entrada")
                        {   tClaseMov = claseMovimiento.Entrada;}
                        else
                        {   tClaseMov = claseMovimiento.Salida;}
                        //Instanciar pantalla de Movimiento de inventarios
                        frmMoviInve tPantalla = new frmMoviInve(tNumero, tBodegaID, estadoPantalla.Consultar,tClaseMov);
                        tPantalla.ShowDialog();
                    }
                    catch (Exception ex)
                    {   
                        MessageBox.Show(ex.Message.ToString());
                    }
                }
            }
        }
    }
}